Adaptive equalization and interpolated timing recovery in a sampled amplitude read channel for magnetic recording

ABSTRACT

A sampled amplitude read channel for magnetic disk recording which asynchronously samples the analog read signal, adaptively equalizes the resulting discrete time sample values according to a target partial response, extracts synchronous sample values through interpolated timing recovery, and detects digital data from the synchronous sample values using a Viterbi sequence detector is disclosed. To minimize interference from the timing and gain control loops, the phase and magnitude response of the adaptive equalizer filter are constrained at a predetermined frequency using an optimal orthogonal projection operation as a modification to a least mean square (LMS) adaptation algorithm. Further, with interpolated timing recovery, the equalizer filter and its associated latency are removed from the timing recovery loop, thereby allowing a higher order discrete time filter and a lower order analog filter.

CROSS REFERENCE TO RELATED APPLICATIONS AND PATENTS

This application is related to other co-pending U.S. patentapplications, namely application Ser. No. 08/440,515 entitled “SampledAmplitude Read Channel For Reading User Data and Embedded Servo DataFrom a Magnetic Medium,” Ser. No. 08/341,251 entitled “Sampled AmplitudeRead Channel Comprising Sample Estimation Equalization, Defect Scanning,Channel Quality, Digital Servo Demodulation, PID Filter for TimingRecovery, and DC Offset Control,” Ser. No. 08/313,491 entitled “ImprovedTiming Recovery For Synchronous Partial Response Recording”, and Ser.No. 08/533,797 entitled “Improved Fault Tolerant Sync Mark Detector ForSampled Amplitude Magnetic Recording.” This application is also relatedto several U.S. patents, namely U.S. Pat. No. 5,359,631 entitled “TimingRecovery Circuit for Synchronous Waveform Sampling,” U.S. Pat. No.5,291,499 entitled “Method and Apparatus for Reduced-Complexityviterbi-Type Sequence Detectors,” U.S. Pat. No. 5,297,184 entitled “GainControl Circuit for Synchronous Waveform Sampling,” U.S. Pat. No.5,329,554 entitled “Digital Pulse Detector,” and U.S. Pat. No. 5,424,881entitled “Synchronous Read Channel.” All of the above-named patentapplications and patents are assigned to the same entity, and all areincorporated herein by reference.

FIELD OF INVENTION

The present invention relates to the control of magnetic disk storagesystems for digital computers, particularly to a sampled amplitude readchannel that employs asynchronous sampling of an analog read signal,adaptive discrete time equalization, and interpolated timing recovery.

BACKGROUND OF THE INVENTION

In magnetic storage systems for computers, digital data serves tomodulate the current in a read/write head coil in order to write asequence of corresponding magnetic flux transitions onto the surface ofa magnetic medium in concentric, radially spaced tracks at apredetermined baud rate. When reading this recorded data, the read/writehead again passes over the magnetic medium and transduces the magnetictransitions into pulses in an analog read signal that alternate inpolarity. These pulses are then decoded by read channel circuitry toreproduce the digital data.

Decoding the pulses into a digital sequence can be performed by a simplepeak detector in a conventional analog read channel or, as in morerecent designs, by a discrete time sequence detector in a sampledamplitude read channel. Discrete time sequence detectors are preferredover simple analog pulse detectors because they compensate forintersymbol interference (ISI) and are less susceptible to channelnoise. As a result, discrete time sequence detectors increase thecapacity and reliability of the storage system.

There are several well known discrete time sequence detection methodsincluding discrete time pulse detection (DPD), partial response (PR)with Viterbi detection, maximum likelihood sequence detection (MLSD),decision-feedback equalization (DFE), enhanced decision-feedbackequalization (EDFE), and fixed-delay tree-search with decision-feedback(FDTS/DF).

In conventional peak detection schemes, analog circuitry, responsive tothreshold crossing or derivative information, detects peaks in thecontinuous time analog signal generated by the read head. The analogread signal is “segmented” into bit cell periods and interpreted duringthese segments of time. The presence of a peak during the bit cellperiod is detected as a “1” bit, whereas the absence of a peak isdetected as a “0” bit. The most common errors in detection occur whenthe bit cells are not correctly aligned with the analog pulse data.Timing recovery, then, adjusts the bit cell periods so that the peaksoccur in the center of the bit cells on average in order to minimizedetection errors. Since timing information is derived only when peaksare detected, the input data stream is normally run length limited (RLL)to limit the number of consecutive “0” bits.

As the pulses are packed closer together on the concentric data tracksin the effort to increase data density, detection errors can also occurdue to intersymbol interference, a distortion in the read signal causedby closely spaced overlapping pulses. This interference can cause a peakto shift out of its bit cell, or its magnitude to decrease, resulting ina detection error. The ISI effect is reduced by decreasing the datadensity or by employing an encoding scheme that ensures a minimum numberof “0” bits occur between “1” bits. For example, a (d,k) run lengthlimited (RLL) code constrains to d the minimum number of “0” bitsbetween “1” bits, and to k the maximum number of consecutive “0” bits. Atypical (1,7) RLL 2/3 rate code encodes 8 bit data words into 12 bitcodewords to satisfy the (1,7) constraint.

Sampled amplitude detection, such as partial response (PR) with Viterbidetection, allows for increased data density by compensating forintersymbol interference and the effect of channel noise. Unlikeconventional peak detection systems, sampled amplitude recording detectsdigital data by interpreting, at discrete time instances, the actualvalue of the pulse data. To this end, the read channel comprises asampling device for sampling the analog read signal, and a timingrecovery circuit for synchronizing the samples to the baud rate (codebit rate). Before sampling the pulses, a variable gain amplifier adjuststhe read signal's amplitude to a nominal value, and a low pass analogfilter filters the read signal to attenuate aliasing noise. Aftersampling, a digital equalizer filter equalizes the sample valuesaccording to a desired partial response, and a discrete time sequencedetector, such as a Viterbi detector, interprets the equalized samplevalues in context to determine a most likely sequence for the digitaldata (i.e., maximum likelihood sequence detection (MLSD)). MLSD takesinto account the effect of ISI and channel noise in the detectionalgorithm, thereby decreasing the probability of a detection error. Thisincreases the effective signal to noise ratio and, for a given (d,k)constraint, allows for significantly higher data density as compared toconventional analog peak detection read channels.

The application of sampled amplitude techniques to digital communicationchannels is well documented. See Y. Kabal and S. Pasupathy, “PartialResponse Signaling”, IEEE Trans. Commun. Tech., Vol. COM-23, pp.921-934,September 1975; and Edward A. Lee and David G. Messerschmitt, “DigitalCommunication”, Kluwer Academic Publishers, Boston, 1990; and G. D.Forney, Jr., “The Viterbi Algorithm”, Proc. IEEE, Vol. 61, pp. 268-278,March 1973.

Applying sampled amplitude techniques to magnetic storage systems isalso well documented. See Roy D. Cideciyan, Francois Dolivo, WalterHirt, and Wolfgang Schott, “A PRML System for Digital MagneticRecording”, IEEE Journal on Selected Areas in Communications, Vol. 10No. 1, January 1992, pp.38-56; and Wood et al, “Viterbi Detection ofClass IV Partial Response on a Magnetic Recording Channel”, IEEE Trans.Commun., Vol. Com-34, No. 5, pp. 454-461, May 1986; and Coker Et al,“Implementation of PRML in a Rigid Disk Drive”, IEEE Trans. onMagnetics, Vol. 27, No. 6, November 1991; and Carley et al, “AdaptiveContinous-Time Equalization Followed By FDTS/DF Sequence Detection”,Digest of The Magnetic Recording Conference, Aug. 15-17, 1994, pp. C3;and Moon et al, “Constrained-Complexity Equalizer Design for Fixed DelayTree Search with Decision Feedback”, IEEE Trans. on Magnetics, Vol. 30,No. 5, September 1994; and Abbott et al, “Timing Recovery For AdaptiveDecision Feedback Equalization of The Magnetic Storage Channel”,Globecom'90 IEEE Global Telecommunications Conference 1990, San Diego,Calif., November 1990, pp.1794-1799; and Abbott et al, “Performance ofDigital Magnetic Recording with Equalization and Offtrack Interference”,IEEE Transactions on Magnetics, Vol. 27, No. 1, January 1991; and Cioffiet al, “Adaptive Equalization in Magnetic-Disk Storage Channels”, IEEECommunication Magazine, February 1990; and Roger Wood, “EnhancedDecision Feedback Equalization”, Intermag'90.

Similar to conventional peak detection systems, sampled amplitudedetection requires timing recovery in order to correctly extract thedigital sequence. Rather than process the continuous signal to alignpeaks to the center of bit cell periods as in peak detection systems,sampled amplitude systems synchronize the pulse samples to the baudrate. In conventional sampled amplitude read channels, timing recoverysynchronizes a sampling clock by minimizing an error between the signalsample values and estimated sample values. A pulse detector or slicerdetermines the estimated sample values from the read signal samples.Even in the presence of ISI the sample values can be estimated and,together with the signal sample values, used to synchronize the samplingof the analog pulses in a decision-directed feedback system.

A phase-locked-loop (PLL) normally implements the timing recoverydecision-directed feedback system. The PLL comprises a phase detectorfor generating a phase error based on the difference between theestimated samples and the read signal samples. A PLL loop filter filtersthe phase error, and the filtered phase error operates to synchronizethe channel samples to the baud rate. Conventionally, the phase erroradjusts the frequency of a sampling clock which is typically the outputof a variable frequency oscillator (VFO). The output of the VFO controlsa sampling device, such as an analog-to-digital (A/D) converter, tosynchronize the sampling to the baud rate.

As mentioned above, sampled amplitude read channels also commonly employa discrete time equalizer filter to equalize the sample values into adesired partial response (PR4, EPR4, EEPR4, etc.) before sequencedetection. To this end, adaptive algorithms have been applied tocompensate in real time for parameter variations in the recording systemand across the disk radius. For example, U.S. Pat. No. 5,381,359entitled “Adaptation and Training of Digital Finite Impulse ResponseFilter Within PRML Sampling Data Detection Channel”, discloses anadaptive equalizer filter that operates according to a well known leastmean square (LMS) algorithm,

w _(k+1) =w _(k) −μ·e _(k) ·x _(k),

where w _(k) represents a vector of filter coefficients; μ is aprogrammable gain; e_(k) represents a sample error between the filter'sactual output and a desired output; and x _(k) represents a vector ofsample values from the filter input. In other words, the LMS adaptiveequalizer filter is a closed loop feedback system that attempts tominimize the mean squared error between an actual output of the filterand a desired output by continuously adjusting the filter's coefficientsto achieve an optimum frequency response.

A problem associated with adaptive equalizer filters in sampledamplitude read channels is that the timing recovery and gain controlloops can interfere with the adaptive feedback loop, thereby preventingthe adaptive equalizer filter from converging to an optimal state. Thisnon-convergence is manifested by the filter's phase and gain responsedrifting as it competes with the timing and gain control loops. Anarticle by J. D. Coker et al. entitled “Implementation of PRML in aRigid Disk Drive”, published in IEEE Transactions on Magnetics, vol. 27,No. 6, November 1991, suggests a three tap transversal filter comprisinga fixed center tap and symmetric side taps in order to constrain thephase response of the equalizer filter except in terms of a fixed groupdelay. Constraining the phase response of the adaptive equalizer in thismanner, however, is a very sub-optimal method for attenuatinginterference from the timing recovery and gain control loops.Furthermore, it significantly reduces control over the adaptive filter'sphase response, thereby placing the burden of phase compensation on theanalog equalizer.

Yet another problem associated with conventional adaptive equalizerfilters is an inherent limitation on its order (i.e., the number ofcoefficients): because the adaptive equalizer is inside the timingrecovery feedback loop, its order must be limited to minimize theassociated transport delay. Compensating for the deficiencies of thediscrete time equalizer requires filtering the analog read signal with ahigher order analog equalizer prior to the timing recovery loop, whichis undesirable.

There is, therefore, a need for an adaptive, discrete time equalizerfilter in a sampled amplitude read channel having an improved method forconstraining the phase and gain response in order to minimizeinterference from the timing recovery and gain control loops. A furtheraspect of the present invention is to remove the adaptive equalizer, andits associated latency, from the timing recovery loop, thereby allowinga higher order discrete time filter and a simplified analog filter.

SUMMARY OF THE INVENTION

A sampled amplitude read channel for magnetic disk recording whichasynchronously samples the analog read signal, adaptively equalizes theresulting discrete time sample values according to a target partialresponse, extracts synchronous sample values through interpolated timingrecovery, and detects digital data from the synchronous sample valuesusing a Viterbi sequence detector is disclosed. To minimize interferencefrom the timing and gain control loops, the phase and magnitude responseof the adaptive equalizer filter are constrained at a predeterminedfrequency using an optimal orthogonal projection operation as amodification to a least mean square (LMS) adaptation algorithm. Further,with interpolated timing recovery, the equalizer filter and itsassociated latency are removed from the timing recovery loop, therebyallowing a higher order discrete time filter and a lower order analogfilter.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other aspects and advantages of the present invention willbe better understood by reading the following detailed description ofthe invention in conjunction with the drawings, wherein:

FIG. 1 is a block diagram of a conventional sampled amplitude recordingchannel.

FIG. 2A shows an exemplary data format of a magnetic disk having aplurality of concentric tracks comprised of a plurality of user datasectors and embedded servo data sectors.

FIG. 2B shows an exemplary format of a user data sector.

FIG. 3 is a block diagram of the improved sampled amplitude read channelof the present invention comprising interpolated timing recovery forgenerating interpolated sample values and a synchronous data clock forclocking operation of a discrete time sequence detector.

FIG. 4A is a detailed block diagram of the prior art sampling timingrecovery comprising a sampling VFO.

FIG. 4B is a detailed block diagram of the interpolating timing recoveryof the present invention comprising an interpolator.

FIG. 5A illustrates the channel samples in relation to the interpolatedbaud rate samples for the acquisition preamble.

FIG. 5B is a timing diagram for the asynchronous sampling clock.

FIG. 5C is a timing diagram for the data clock synchronized on averageto the baud rate.

FIG. 5D is a timing diagram of the mask signal for masking theasynchronous sampling clock to generate the data clock.

FIG. 6 shows an FIR filter implementation for the timing recoveryinterpolator.

FIG. 7 depicts a cost reduced implementation for the timing recoveryinterpolator.

FIG. 8A is a block diagram of a conventional adaptive, discrete timeequalizer filter in a sampled amplitude read channel.

FIG. 8B shows the adaptive, discrete time equalizer of the presentinvention.

FIG. 8C shows an alternative embodiment for the adaptive, discrete timeequalizer of the present invention.

FIG. 9A illustrates the present invention adaptive filter's gainresponse constrained at a normalized frequency of 1/4T.

FIG. 9B shows the present invention adaptive filter's phase responseconstrained at a normalized frequency of 1/4T.

FIG. 10 illustrates operation of an orthogonal projection operation ofthe present invention for constraining the gain and phase response ofthe adaptive filter.

FIG. 11A shows an implementation for a reduced cost orthogonalprojection operation.

FIG. 11B shows an alternative embodiment for the reduced cost orthogonalprojection operation.

FIG. 11C illustrates an implementation for a gradient averaging circuitused in the reduced cost orthogonal projection operation of FIG. 11B.

FIG. 11D shows yet another alternative embodiment for the reduced costorthogonal projection operation of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT Conventional SampledAmplitude Read Channel

Referring now to FIG. 1, shown is a detailed block diagram of aconventional sampled amplitude read channel. During a write operation,either user data 2 or preamble data from a data generator 4 (for example2T preamble data) is written onto the media. An RLL encoder 6 encodesthe user data 2 into a binary sequence b(n) 8 according to an RLLconstraint. A precoder 10 precodes the binary sequence b(n) 8 in orderto compensate for the transfer function of the recording channel 18 andequalizer filters to form a precede sequence ˜b(n) 12. The precodedsequence ˜b(n) 12 is converted into symbols a(n) 16 by translating 14˜b(N)=0 into a(N)=−1, and ˜b(N)=1 into a(N)=+1. write circuitry 9,responsive to the symbols a(n) 16, modulates the current in therecording head coil at the baud rate 1/T to record the binary sequenceonto the media. A frequency synthesizer 52 provides a baud rate writeclock 54 to the write circuitry 9 and is adjusted by a channel data ratesignal (CDR) 30 according to the zone the recording head is over.

When reading the recorded binary sequence from the media, timingrecovery 28 first locks to the write frequency by selecting, as theinput to the read channel, the write clock 54 through a multiplexor 60.Once locked to the write frequency, the multiplexor 60 selects thesignal 19 from the read head as the input to the read channel in orderto acquire an acquisition preamble recorded on the disk prior to therecorded user data. A variable gain amplifier 22 adjusts the amplitudeof the analog read signal 58, and an analog filter 20 provides initialequalization toward the desired response as well as attenuating aliasingnoise. A sampling device 24 samples the analog read signal 62 from theanalog filter 20, and a discrete time equalizer filter 26 providesfurther equalization of the sample values 25 toward the desiredresponse. In partial response recording, for example, the desiredresponse is often selected from Table 1.

The discrete equalizer filter 26 may be implemented as a real-timeadaptive filter which compensates for parameter variations over the diskradius (i.e., zones), disk angle, and environmental conditions such astemperature drift. To this end, the filter 26 receives estimated samplevalues B143 generated by the timing recovery circuit 28; the estimatedsamples being input into an adaptive feedback loop and used to generatesample errors. The adaptive feedback loop conventionally employs a leastmean square (LMS) algorithm to adapt the filter coefficients (i.e., itadapts the frequency and phase response of the filter) until a minimumsample error is achieved. Operation of a conventional adaptive equalizerfilter is discussed in greater detail below.

After equalization, the equalized sample values 32 are applied to adecision directed gain control 50 and timing recovery 28 circuit foradjusting the amplitude of the read signal 58 and the frequency andphase of the sampling device 24, respectively. Timing recovery adjuststhe frequency of sampling device 24 over line 23 in order to synchronizethe equalized samples 32 to the baud rate. Frequency synthesizer 52provides a course center frequency setting to the timing recoverycircuit 28 over line 64 in order to center the timing recovery frequencyover temperature, voltage, and process variations. The channel data rate(CDR) 30 signal adjusts a frequency range of the synthesizer 52according to the data rate for the current zone. Gain control 50 adjuststhe gain of variable gain amplifier 22 over line 21 in order to matchthe magnitude of the channel's frequency response to the desired partialresponse.

The equalized samples Y(n) 32 are also sent to a discrete time sequencedetector 34, such as a maximum likelihood (ML) Viterbi sequencedetector, which detects an estimated binary sequence {circumflex over ()}b(n) 33 from the sample values. An RLL decoder 36 decodes theestimated binary sequence {circumflex over ( )}b(n) 33 from the sequencedetector 34 into estimated user data 37. A data sync detector 66 detectsthe sync mark 70 (shown in FIG. 2B) in the data sector 15 in order toframe operation of the RLL decoder 36. In the absence of errors, theestimated binary sequence {circumflex over ( )}b(n) 33 matches therecorded binary sequence b(n) 8, and the decoded user data 37 matchesthe recorded user data 2.

Data Format

FIG. 2A shows an exemplary data format of a magnetic media comprising aseries of concentric data tracks 13 wherein each data track 13 comprisesa plurality of sectors 15 with embedded servo wedges 17. A servocontroller (not shown) processes the servo data in the servo wedges 17and, in response thereto, positions the read/write head over a desiredtrack. Additionally, the servo controller processes servo bursts withinthe servo wedges 17 to keep the head aligned over a centerline of thedesired track while writing and reading data. The servo wedges 17 may bedetected by a simple discrete time pulse detector or by the discretetime sequence detector 34. If the sequence detector 34 detects the servodata, then the format of the servo wedges 17 includes a preamble and async mark, similar to the user data sectors 15.

FIG. 2B shows the format of a user data sector 15 comprising anacquisition preamble 68, a sync mark 70, and user data 72. Timingrecovery uses the acquisition preamble 68 to acquire the correctsampling frequency and phase before reading the user data 72, and thesync mark 70 demarks the beginning of the user data 72 (see co-pendingU.S. patent application Ser. No. 08/313,491 entitled “Improved TimingRecovery For Synchronous Partial Response Recording”).

To increase the overall storage density, the disk is partitioned into anouter zone 11 comprising fourteen data sectors per track, and an innerzone 27 comprising seven data sectors per track. In practice, the diskis actually partitioned into several zones with a different number ofsectors in each zone, and the data recorded and detected at a differentdata rate in each zone.

Improved Sampled Amplitude Read Channel

FIG. 3 shows the improved sampled amplitude read channel of the presentinvention wherein the conventional sampled timing recovery 28 of FIG. 1has been replaced by interpolated timing recovery B100. In addition, thewrite frequency synthesizer 52 generates a baud rate write clock 54applied to the write circuitry 9, and an asynchronous read clock 54 forclocking the sampling device 24, the discrete time equalizer filterB103, and the interpolated timing recovery B100 at a frequency relativeto the current zone (CDR 30). In an alternative embodiment, a firstfrequency synthesizer generates the write clock, and a second frequencysynthesizer generates the read clock.

The discrete equalizer filter B103 is real-time adaptive, receivinginterpolated sample values B102 and estimated sample values B143 fromthe interpolated timing recovery circuit B100 for use in a modifiedleast mean square (LMS) algorithm which constrains the filter's gain andphase response according to the present invention, the details of whichare set forth below.

The interpolated timing recovery B100 interpolates the equalized samplevalues 32 to generate interpolated sample values B102 substantiallysynchronized to the data rate of the current zone. A discrete timesequence detector 34 detects an estimated binary sequence 33representing the user data from the interpolated sample values B102. Theinterpolated timing recovery B100 circuit generates a synchronous dataclock B104 for clocking operation of the gain control 50, discrete timesequence detector 34, sync mark detector 66 and RLL decoder 36.

Conventional Timing Recovery

An overview of the conventional sampling timing recovery 28 of FIG. 1 isshown in FIG. 4A. The output 23 of a variable frequency oscillator (VFO)B164 controls the sampling clock of a sampling device 24 which istypically an analog-to-digital converter (A/D) in digital read channels.A multiplexor B159 selects the unequalized sample values 25 duringacquisition and the equalized sample values 32 during tracking, therebyremoving the discrete equalizer filter 26 from the timing loop duringacquisition in order to avoid its associated latency. A phase errordetector B155 generates a phase error in response to the sample valuesreceived over line B149 and estimated sample values ˜Y_(k) from a samplevalue estimator B141, such as a slicer in a d=0 PR4 read channel, overline B143. A loop filter B160 filters the phase error to generate afrequency offset Δf B167 that settles to a value proportional to afrequency difference between the sampling clock 23 and the baud rate.The frequency offset Δf B167, together with the center frequency controlsignal 64 from the frequency synthesizer 52, adjust the sampling clock23 at the output of the VFO B164 in order to synchronize the sampling tothe baud rate.

A zero phase start B162 circuit suspends operation of the VFO B164 atthe beginning of acquisition in order to minimize the initial phaseerror between the sampling clock 23 and the read signal 62. This isachieved by disabling the VFO B164, detecting a zero crossing in theanalog read signal 62, and re-enabling the VFO B164 after apredetermined delay between the detected zero crossing and the firstbaud rate sample.

The estimated sample values B143 at the output of the slicer B141 arealso input into the discrete time equalizer filter 26 of FIG. 1 for usein a conventional least mean square (LMS) adaptation algorithm as isdescribed in more detail below.

Interpolated Timing Recovery

The interpolated timing recovery B100 of the present invention is shownin FIG. 4B. The VFO B164 in the conventional timing recovery of FIG. 4Ais replaced with a modulo-Ts accumulator B120 and an interpolator B122.In addition, an expected sample value generator B151, responsive tointerpolated sample values B102, generates expected samples Y _(k+τ)used by the phase error detector B155 to compute the phase error duringacquisition. A multiplexor B153 selects the estimated sample values˜Y_(k+τ) from the slicer B141 for use by the phase error detector B155during tracking. The data clock B104 is generated at the output of anAND gate B126 in response to the sampling clock 54 and a mask signalB124 from the modulo-Ts accumulator B120 as discussed in further detailbelow. The phase error detector B155 and the slicer B141 processinterpolated sample values B102 at the output of the interpolator B122rather than the channel sample values 32 at the output of the discreteequalizer filter 26 as in FIG. 4A. A PID loop filter B161 controls theclosed loop frequency response similar to the loop filter B160 of FIG.4A.

The interpolated sample values Y_(k+τ) B102 and the estimated samplevalues ˜Y_(k+τ) from the slicer B141 are input into the adaptive,discrete equalizer filter B103 of FIG. 3 for use by a modified leastmean square (LMS) algorithm, the details of which are set forth below.

In the interpolated timing recovery of the present invention, locking aVFO to a reference frequency before acquiring the preamble is no longernecessary; multiplexing 60 the write clock 54 into the analog receivefilter 20 (as in FIG. 1) is not necessary. Further, the sampling device24 and the discrete equalizer filter 26, together with their associateddelays, have been removed from the timing recovery loop; it is notnecessary to multiplex B159 around the equalizer filter 26 betweenacquisition and tracking. However, it is still necessary to acquire apreamble 68 before tracking the user data 72. To this end, a zero phasestart circuit B163 minimizes the initial phase error between theinterpolated sample values and the baud rate at the beginning ofacquisition similar to the zero phase start circuit B162 of FIG. 4A.However, rather than suspend operation of a sampling VFO B164, the zerophase start circuit B163 for interpolated timing recovery computes aninitial phase error τ from the A/D 24 sample values 25 and loads thisinitial phase error into the modulo-Ts accumulator B120.

For more details concerning the PID loop filter B161, phase errordetector B155, expected sample generator B151, and slicer B141, refer tothe above referenced co-pending U.S. patent applications “SampledAmplitude Read Channel Comprising Sample Estimation Equalization, DefectScanning, Channel Quality, Digital Servo Demodulation, PID Filter forTiming Recovery, and DC Offset Control” and “Improved Timing RecoveryFor Synchronous Partial Response Recording.” A detailed description ofthe modulo-Ts accumulator B120, data clock B104, and interpolator B122is provided in the following discussion.

Interpolator

The interpolator B122 of FIG. 4B is understood with reference to FIG. 5Awhich shows a sampled 2T acquisition preamble signal B200. The targetsynchronous sample values B102 are shown as black circles and theasynchronous channel sample values 32 as vertical arrows. Beneath thesampled preamble signal are timing diagrams depicting the correspondingtiming signals for the sampling clock 54 (FIG. 5B), the data clock B104(FIG. 5C) and the mask signal B124 (FIG. 5D). As can be seen in FIG. 5A,the preamble signal B200 is sampled slightly faster than the baud rate(the rate of the target values).

The function of the interpolator is to estimate the target sample valueby interpolating the channel sample values. For illustrative purposes,consider a simple estimation algorithm, linear interpolation:

Y(N−1)=x(N−1)+τ·(x(N)−x(N−1));  (1)

where:

x(N−1) and x(N) are the channel samples surrounding the target sample;and τ is an interpolation interval proportional to a time differencebetween the channel sample value x(N−1) and the target sample value. Theinterpolation interval τ is generated at the output of modulo-Tsaccumulator B120 which accumulates the frequency offset signal Δf B167at the output of the PID loop filter B161:

τ=(ΣΔf)MOD TS;  (2)

where:

Ts is the sampling period of the sampling clock 54. Since the samplingclock 54 samples the analog read signal 62 slightly faster than the baudrate, it is necessary to mask the data clock every time the accumulatedfrequency offset Δf, integer divided by Ts, increments by 1. Operationof the data clock B104 and the mask signal B124 generated by themodulo-Ts accumulator B120 is understood with reference to the timingdiagrams of FIGS. 5B, 5C and 5D.

Assuming the interpolator implements the simple linear equation (1)above, then channel sample values B202 and B204 are used to generate theinterpolated sample value corresponding to target sample value B206. Theinterpolation interval τ B208 is generated according to equation (2)above. The next interpolated sample value corresponding to the nexttarget value B210 is computed from channel sample values B204 and B212.This process continues until the interpolation interval τ B214 would begreater than Ts except that it “wraps” around and is actually τ B216(i.e., the accumulated frequency offset Δf, integer divided by Ts,increments by 1 causing the mask signal B124 to activate). At thispoint, the data clock B104 is masked by mask signal B124 so that theinterpolated sample value corresponding to the target sample value B220is computed from channel sample values B222 and B224 rather than channelsample values B218 and B222.

The simple linear interpolation of equation (1) will only work if theanalog read signal is sampled at a much higher frequency than the baudrate. This is not desirable since operating the channel at higherfrequencies increases its complexity and cost. Therefore, in thepreferred embodiment the interpolator B122 is implemented as a filterresponsive to more than two channel samples to compute the interpolatedsample value.

The ideal discrete time phase interpolation filter has a flat magnituderesponse and a constant group delay of τ:

C _(τ)(e ^(jω))=e ^(jωτ)  (3)

which has an ideal impulse response:

sin c((π·(n−τ/T _(s))).  (4)

Unfortunately, the above non-causal infinite impulse response (4) cannotbe realized. Therefore, the impulse response of the interpolation filteris designed to be a best fit approximation of the ideal impulse response(4). This can be accomplished by minimizing a mean squared error betweenthe frequency response of the actual interpolation filter and thefrequency response of the ideal interpolation filter (3). Thisapproximation can be improved by taking into account the spectrum of theinput signal, that is, by minimizing the mean squared error between theinput spectrum multiplied by the actual interpolation spectrum and theinput spectrum multiplied by the ideal interpolation spectrum:

{overscore (C)} _(τ)(e ^(jω))x(e ^(jω))−C _(τ)(e ^(jω))x(e ^(jω));  (5)

where:

{overscore (C)}_(τ)(e^(jω)) is the spectrum of the actual interpolationfilter; and x(e^(jω)) is the spectrum of the input signal. From equation(5), the mean squared error is represented by: $\begin{matrix}{{E_{\tau}^{2} = {\frac{1}{2\pi}{\int_{- \pi}^{\pi}{{{{{\overset{\_}{C}}_{\tau}\left( ^{j\quad \omega} \right)} - ^{j\quad {\omega\tau}}}}^{2}{{X\left( ^{j\quad \omega} \right)}}^{2}\quad {\omega}}}}};\quad {{where}\text{:}}} & (6)\end{matrix}$

X(e^(jω)) is the spectrum of the read channel (e.g., PR4, EPR4, EEPR4 ofTable 1 or some other partial response spectrum).

In practice, the above mean squared error equation (6) is modified byspecifying that the spectrum of the input signal is bandlimited to somepredetermined constant 0≦ω≦απ where 0<α<1; that is:

 |X(e ^(jω))|=0, for |ω|≧απ.

Then equation (6) can be expressed as: $\begin{matrix}{E_{\tau,\alpha}^{2} = {\frac{1}{2\pi}{\int_{- {\alpha\pi}}^{\alpha\pi}{{{{{\overset{\_}{C}}_{\tau}\left( ^{j\quad \omega} \right)} - ^{j\quad {\omega\tau}}}}^{2}{{X\left( ^{j\quad \omega} \right)}}^{2}\quad {{\omega}.}}}}} & (7)\end{matrix}$

The solution to the minimization problem of equation (7) involvesexpressing the actual interpolation filter in terms of its coefficientsand then solving for the coefficients that minimize the error in aclassical mean-square sense.

The actual interpolation filter can be expressed as the FIR polynomial:$\begin{matrix}{{{{\overset{\_}{C}}_{\tau}\left( ^{j\quad \omega} \right)} = {\sum\limits_{n = {- R}}^{n = {R - 1}}\quad {{C_{\tau}(n)}^{{- j}\quad \omega \quad n}}}};\quad {{where}\text{:}}} & (8)\end{matrix}$

2R is the number of taps in each interpolation filter and the sampleperiod Ts has been normalized to 1. A mathematical derivation for aninterpolation filter having an even number of coefficients is providedbelow. It is within the ability of those skilled in the art to modifythe mathematics to derive an interpolation filter having an odd numberof coefficients.

Substituting equation (8) into equation (7) leads to the desiredexpression in terms of the coefficients C_(τ)(n): $\begin{matrix}{E_{\tau,\alpha}^{2} = {\frac{1}{2\pi}{\int_{- {\alpha\pi}}^{\alpha\pi}{{{{\sum\limits_{n = {- R}}^{n = {R - 1}}\quad {{C_{\tau}(n)}^{{- j}\quad \omega \quad n}}} - ^{j\quad {\omega\tau}}}}^{2}{{X\left( ^{j\quad \omega} \right)}}^{2}\quad {{\omega}.}}}}} & (9)\end{matrix}$

The next step is to take the derivatives of equation (9) with respect tothe coefficients C_(τ)(n) and set them to zero: $\begin{matrix}{{\frac{\partial E_{\tau,\alpha}^{2}}{\partial{c_{\tau}\left( n_{o} \right)}} = {{0\quad {for}\quad n_{o}} = {- R}}},\ldots \quad,0,1,\ldots \quad,{R - 1.}} & (10)\end{matrix}$

After careful manipulation, equation (10) leads to: $\begin{matrix}{{\int_{- {\alpha\pi}}^{\alpha\pi}{\left\lbrack {\left( {\sum\limits_{n = {- R}}^{n = {R - 1}}{{C_{\tau}(n)}{\cos \left( {\omega \left( {n_{o} - n} \right)} \right)}}} \right) - {\cos \left( {\omega \left( {n_{o} + \tau} \right)} \right)}} \right\rbrack {{X\left( ^{j\quad \omega} \right)}}^{2}\quad {\omega}}} = 0} & (11)\end{matrix}$

for n_(o)=−R, . . . , 0, 1, . . . , R−1.

Defining φ(r) as: $\begin{matrix}{{\varphi (r)} = {\int_{- {\alpha\pi}}^{\alpha\pi}{{{X\left( ^{j\quad \omega} \right)}}^{2}\quad {\cos \left( {\omega \quad r} \right)}{\omega}}}} & (12)\end{matrix}$

and substituting equation (12) into equation (11) gives: $\begin{matrix}{{\sum\limits_{n = {- R}}^{n = {R - 1}}\quad {{C_{\tau}(n)}{\varphi \left( {n - n_{o}} \right)}}} = {\varphi \left( {n_{o} + \tau} \right)}} & (13)\end{matrix}$

Equation (13) defines a set of 2R linear equations in terms of thecoefficients C_(τ)(n). Equation (13) can be expressed more compactly inmatrix form:

Φ_(T) C _(τ)=Φ_(τ);

where:

C_(τ) is a column vector of the form:

 C _(τ) =[C _(τ)(−R), . . . , C _(τ)(0), . . . , C _(τ)(R−1)]^(t)

Φ_(T) is a Toeplitz matrix of the form: $\Phi_{T} = \begin{bmatrix}{\varphi (0)} & {\varphi (1)} & \cdots & {\varphi \left( {{2R} - 1} \right)} \\{\varphi (1)} & {\varphi (0)} & \quad & \quad \\\vdots & \quad & \quad & \vdots \\{\varphi \left( {{2R} - 1} \right)} & \quad & \cdots & {\varphi (0)}\end{bmatrix}$

and Φ_(τ) is a column vector of the form:

Φ_(τ)=[φ(−R+τ), . . . , φ(τ), φ(1+τ), . . . , φ(R−1+τ)]^(t).  (14)

The solution to equation (14) is:

C _(τ)=Φ_(T) ⁻¹Φ_(τ);  (15)

where:

Φ_(T) ⁻¹ is an inverse matrix that can be solved using well knownmethods.

Table B2 shows example coefficients C_(τ)(n) calculated from equation(15) with 2R=6, α=0.8 and X(e^(jω))=PR4. The implementation of the sixtap FIR filter is shown in FIG. 6. A shift register B250 receives thechannel samples 32 at the sampling clock rate 54. The filtercoefficients C_(τ)(n) are stored in a coefficient register file B252 andapplied to corresponding multipliers according to the current value of τB128. The coefficients are multiplied by the channel samples 32 storedin the shift register B250. The resulting products are summed B254 andthe sum stored in a delay register B256. The coefficient register fileB252 and the delay register B256 are clocked by the data clock B104 toimplement the masking function described above.

In an alternative embodiment not shown, a plurality of static FIRfilters, having coefficients that correspond to the different values ofτ, filter the sample values in the shift register B250. Each filteroutputs an interpolation value, and the current value of theinterpolation interval τ B128 selects the output of the correspondingfilter as the output B102 of the interpolator B122. Since thecoefficients of one filter are not constantly updated as in FIG. 6, thismultiple filter embodiment increases the speed of the interpolator B122and the overall throughput of the read channel.

Cost Reduced Interpolator

Rather than store all of the coefficients of the interpolation filtersin memory, in a more efficient, cost reduced implementation thecoefficient register file B252 of FIG. 6 computes the filtercoefficients C_(τ)(n) in real time as a function of τ. For example, thefilter coefficients C_(τ)(n) can be computed in real time according to apredetermined polynomial in τ (see, for example, U.S. Pat. No. 4,866,647issued to Farrow entitled, “A Continuously Variable Digital DelayCircuit,” the disclosure of which is hereby incorporated by reference).An alternative, preferred embodiment for computing the filtercoefficients in real time estimates the filter coefficients according toa reduced rank matrix representation of the coefficients.

The bank of filter coefficients stored in the coefficient register fileB252 can be represented as an M×N matrix A_(M×N), where N is the depthof the interpolation filter (i.e., the number of coefficients C_(τ)(n)in the impulse response computed according to equation (15)) and M isthe number of interpolation intervals (i.e., the number of τ intervals).Rather than store the entire A_(M×N) matrix in memory, a more efficient,cost reduced implementation is attained through factorization andsingular value decomposition (SVD) of the A_(M×N) matrix.

Consider that the A_(M×N) matrix can be factored into an F_(M×N) andG_(N×N) matrix,

A _(M×N) =F _(M×N) ·G _(N×N).

Then a reduced rank approximation of the A_(M×N) matrix can be formed byreducing the size of the F_(M×N) and G_(N×N) matrices by replacing Nwith L where L<N and, preferably, L<<N. Stated differently, find theF_(M×L) and G_(L×N) matrices whose product best approximates the A_(M×N)matrix,

A _(M×N) ≈F _(M×L) ·G _(L×N).

The convolution process of the interpolation filter can then be carriedout, as shown in FIG. 7, by implementing the G_(L×N) matrix as a bank ofFIR filters B260 connected to receive the channel sample values 32, andthe F_(M×L) matrix implemented as a lookup table B262 indexed by τ B128(as will become more apparent in the following discussion). Thoseskilled in the art will recognize that, in an alternative embodiment,the A_(M×N) matrix can be factored into more than two matrices (i.e.,A≈FGH . . . ).

The preferred method for finding the F_(M×L) and G_(L×N) matrices is tominimize the following sum of squared errors: $\begin{matrix}{\sum\limits_{j = 1}^{M}\quad {\sum\limits_{n = 1}^{N}\quad \left( {A_{jn} - \left( {F_{M \times L} \cdot G_{L \times N}} \right)_{jn}} \right)^{2}}} & (16)\end{matrix}$

The solution to equation (16) can be derived through a singular valuedecomposition of the A_(M×N) matrix, comprising the steps of:

1. performing an SVD on the A_(M×N) matrix which gives the followingunique factorization (assuming M≧N):

A _(M×N) =U _(M×N) ·D _(N×N) ·V _(N×N)

where:

U_(M×N) is a M×N unitary matrix;

D_(N×N) is a N×N diagonal matrix {σ₁, σ₂, . . . , σ_(N)} where σ_(i) arethe singular values of A_(M×N), and σ₁≧σ₂ . . . ≧σ_(N)≧0; and

V_(N×N) is a N×N unitary matrix;

2. selecting a predetermined L number of the largest singular values σto generate a reduced size diagonal matrix D_(L×L):$D_{L \times L} = {{{Diag}\left\{ {\sigma_{1},\sigma_{2},\ldots \quad,\sigma_{L}} \right\}} = \begin{bmatrix}\sigma_{1} & 0 & \ldots & 0 \\0 & \sigma_{2} & {0\quad \cdots} & \vdots \\\vdots & \ldots & \ldots & 0 \\0 & \ldots & 0 & \sigma_{L}\end{bmatrix}}$

3. extracting the first L columns from the U_(M×N) matrix to form areduced U_(MXL) matrix:

4. extracting the first L rows from the V_(N×N) matrix to form a reducedV_(L×N) matrix:

5. defining the F_(M×L) and G_(L×N) matrices such that:

 F _(M×L) ·G _(L×N) =U _(M×L) ·D _(L×L) ·V _(L×N) ≈A _(M×N)

(for example, let F_(M×L)=U_(M×L)·D_(L×L) and G_(L×N)=V_(L×N)).

In the above cost reduced polynomial and reduced rank matrixembodiments, the interpolation filter coefficients C_(τ)(n) are computedin real time as a function of τ; that is, the filter's impulse responseh(n) is approximated according to: $\begin{matrix}{{{h\left( {n,\tau} \right)} = {{c_{\tau}(n)} = {\sum\limits_{i = 1}^{L}\quad {{G_{i}(n)} \cdot {f\left( {i,\tau} \right)}}}}};\quad {{where}\text{:}}} & (17)\end{matrix}$

f(i,τ) is a predetermined function in τ (e.g., polynomial in τ or τindexes the above F_(M×L) matrix); L is a degree which determines theaccuracy of the approximation (e.g., the order of the polynomial or thecolumn size of the above F_(M×L) matrix); and G_(i)(n) is apredetermined matrix (e.g., the coefficients of the polynomial or theabove G_(L×N) matrix). As L increases, the approximated filtercoefficients C_(τ)(n) of equation (17) tend toward the idealcoefficients derived from equation (15). It follows from equation (17)that the output of the interpolation filter Y(x) can be represented as:$\begin{matrix}{{Y(x)} = {\sum\limits_{n = 1}^{N}\quad {{U\left( {x - n} \right)}{\sum\limits_{i = 1}^{L}\quad {{G_{i}(n)} \cdot {f\left( {i,\tau} \right)}}}}}} & (18)\end{matrix}$

where U(x) are the channel sample values 32 and N is the number ofinterpolation filter coefficients C_(τ)(n).

Referring again to FIG. 6, the coefficient register file can compute theinterpolation filter coefficients C_(τ)(n) according to equation (17)and then convolve the coefficients C_(τ)(n) with the channel samplesU(x) 32 to generate the interpolated sample values B102 synchronized tothe baud rate. However, a more efficient implementation of theinterpolation filter can be achieved by rearranging equation (18):$\begin{matrix}{{Y(x)} = {\sum\limits_{i = 1}^{L}{{f\left( {i,\tau} \right)}{\sum\limits_{n = 1}^{N}{{G_{i}(n)} \cdot {U\left( {x - n} \right)}}}}}} & (19)\end{matrix}$

FIG. 7 shows the preferred embodiment of the interpolation filteraccording to equation (19). In the polynomial embodiment, the functionof τ is a polynomial in τ, and the matrix G_(i)(n) are the coefficientsof the polynomial. And in the reduced rank matrix embodiment, thefunction of τ is to index the above F_(M×L) matrix B262, and the secondsummation in equation (19),$\sum\limits_{n = 1}^{N}{{G_{i}(n)} \cdot {U\left( {x - n} \right)}}$

is implemented as a bank of FIR filters B260 as shown in FIG. 7. Again,in equation (19) L is the depth of the approximation function f(i,τ)(e.g., the order of the polynomial or the column size of the aboveF_(M×L) matrix) and N is the depth of the interpolation filter's impulseresponse (i.e., the number of coefficients in the impulse response). Ithas been determined that N=8 and L=3 provides the best performance/costbalance; however, these values may increase as IC technology progressesand the cost per gate decreases.

Conventional Adaptive Equalizer

FIG. 8A illustrates a prior art adaptive, discrete time equalizer thatoperates according to the well known least mean square (LMS) algorithm,

w _(k+1) =w _(k) −μ·e _(k) ·x _(k),

or alternatively,

W _(k+1) =W _(k) −μ·X _(k) ·e _(k)

where w _(k) represents a vector of FIR filter coefficients; μ is aprogrammable gain; e_(k) represents a sample error (or vector of sampleerrors e _(k)) between the FIR filter's actual output and a desiredoutput; and x _(k) represents a vector of samples values (or a scalarX_(k)) from the FIR filter input. To better understand operation of thepresent invention, the second representation of the LMS algorithm isused throughout this disclosure.

The desired filter output is the estimated sample values ˜Y_(k) at theoutput of slicer B141. The estimated sample values ˜Y_(k) are subtractedfrom the FIR filter's output Y_(k) to generate the sample error e_(k).The LMS algorithm attempts to minimize the sample error in a least meansquare sense by adapting the FIR filter coefficients; that is, itadjusts the FIR filter's gain and phase response so that the overallchannel response adequately tracks the desired partial response (e.g.,PR4, EPR4, EEPR4, etc.).

As previously mentioned, interference from the timing recovery 28 andgain control 50 loops can prevent the adaptive, discrete time equalizer26 from converging to an optimal state. For example, a phase adjustmentin the adaptive filter 26 can affect the sampling phase error for timingrecovery 28. Timing recovery 28 compensates for the filter's phaseadjustment by adjusting its sampling phase; this adjustment can resultin yet another phase adjustment by the adaptive equalizer 26. Thus, thephase response of the adaptive equalizer may never converge. Similarly,the gain control loop 50 can interfere with the gain response of theadaptive filter 26 and prevent it from converging.

Constrained Adaptive Equalizer

FIG. 8B illustrates operation of the adaptive, discrete time equalizerfilter B103 of the present invention. Sample values from the A/D 24 areinput over line 25 to a discrete time FIR filter C100 comprising apredetermined number of coefficients, the values of which determine thefilter's gain and phase response. Because the FIR filter C100 operateson the sample values prior to the interpolated timing recovery loopB100, its order can be increased over the prior art without adverselyaffecting the latency of timing recovery (i.e., the number of filtercoefficients can be increased).

The output Y_(k) 32 of the FIR filter C100 is input into theinterpolator B122 for generating the interpolated sample values Y_(k+τ)B102. The interpolated sample values Y_(k+τ) B102 are input into aslicer B141 (FIG. 4B) which generates estimated sample values ˜Y_(k+τ).The estimated sample values ˜Y_(k+τ) are subtracted from theinterpolated sample values Y_(k+τ) at adder C102 to generate a sampleerror value e_(k+τ) C104 that is synchronized to the baud rate ratherthan the sample rate. Because the LMS algorithm operates on samplevalues X_(k) at the sample rate, it is necessary to convert the errorvalue e_(k+τ) C104 into an error value e_(k) C112 synchronous to thesample rate. This is accomplished by an interpolation circuit C106 whichcomputes an interpolated error value e_(k) C112 from the baud rate errorvalues e_(k+τ) C104. Preferably, the error value interpolation circuitC106 is implemented as a first order linear interpolation, but it may bea simple zero order hold, or a more complex interpolation filter asdescribed above.

FIG. 8C shows an alternative embodiment for generating the error valuee_(k). As illustrated, the estimated ideal sample values ˜Y_(k+τ) fromthe slicer B141 are interpolated by the interpolation circuit C106 togenerate estimated ideal sample values ˜Y_(k) C120 which are subtractedC102 from the equalized sample values Y_(k) 32 at the output of the FIRfilter C100 to generate the error value e_(k).

In both embodiments, the error value e_(k) C112 is input into a modifiedLMS circuit C114 which computes updated filter coefficients W_(k+1) C116according to,

W _(k+1) =W _(k) −μ·Pv ₁ v ₂ ^(⊥)·(X _(k) ·e _(k))

where the operation Pv₁v₂ ^(⊥) is an orthogonal projection operationwhich constrains the gain and phase response of the FIR filter C100 inorder to attenuate interference from the gain and timing loops.

Operation of the orthogonal projection operation Pv₁v₂ ^(⊥) will now bedescribed in relation to the gain and phase response of the FIR filterC100. FIGS. 9A and 9B show an example gain and phase response,respectively, for the FIR filter C100 of the present invention. The gainand phase response vary over time as the filter adapts to parameterchanges in the recording system; that is, the filter continuouslyadjusts the channel's overall frequency response so that it matches thedesired partial response (PR4, EPR4, EEPR4, etc.) as best possible. Inthe present invention, interference from the timing recovery and gaincontrol loops is attenuated by constraining the gain and phase responseof the FIR filter C100 at a predetermined frequency using an orthogonalprojection operation Pv₁v₂ ^(⊥).

Referring again to FIG. 9A, the gain (magnitude) response of the FIRfilter C100 has been constrained to a predetermined value (denoted by g)at the normalized frequency of 0.5 (1/4Ts). Similarly, the phaseresponse of the FIR filter C100 has been constrained to kπ at thenormalized frequency of 0.5 as shown in FIG. 9B. In effect, theseconstraints allow the gain and phase to vary (adapt) at all frequenciesexcept at the normalized frequency of 0.5, thereby constraining thefilter's frequency response in a manner that attenuates interferencefrom the gain and timing loops. The gain constraint g is relativelyarbitrary except that it is selected to optimize the dynamic range ofthe filter's coefficients. However, constraining the filter's responseat the normalized frequency of 0.5 and selecting a phase constraint ofkπ reduces the complexity of the orthogonal projection operation Pv₁v₂^(⊥), and simplifies implementation of the zero phase start circuit B163(FIG. 4B) and sync mark detector 66 (FIG. 1).

As mentioned above, the zero phase start circuit B163 (FIG. 4B)minimizes the initial phase error between the interpolated sample valuesand the baud rate at the beginning of acquisition by computing aninitial phase error τ from the A/D 24 sample values 25 and then loadingthis initial phase error into the modulo-Ts accumulator B120. To computethe initial phase error τ, the zero phase start circuit B163 must takeinto account the phase delay of the adaptive equalizer filter B103 sinceinterpolated timing recovery B100 operates on the equalized samples 32,not the A/D 24 samples 25. With the acquisition preamble 68 (FIG. 2B)having a frequency of 1/4T (i.e., 0.5 normalized), constraining thephase response of the adaptive equalizer B103 at the preamble frequency(1/4Ts) fixes the phase delay of the equalizer B103 during acquisition,thereby allowing the zero phase start circuit B163 to accurately computethe initial phase error τ. Furthermore, since the phase constraint atthe preamble frequency is fixed at kπ, the phase delay of the equalizerB103 will either be zero or 180° (i.e., the adjustment to the initialphase error is nothing or a sign change).

Constraining the phase response of the adaptive equalizer B103 to kπ atthe preamble frequency also simplifies implementation of the sync markdetector 66 (FIG. 1) in sampled amplitude read channels that use theconventional synchronous sampling timing recovery 28 (FIG. 4A) ratherthan interpolated timing recovery B100 (FIG. 4B). Operation of the syncmark detector 66 is described in detail in the above referencedco-pending U.S. patent application Ser. No. 08/533,797 entitled“Improved Fault Tolerant Sync Mark Detector For Sampled AmplitudeMagnetic Recording.” As described therein, the sync mark detector 66 isenabled coherent with the end of the acquisition preamble 68 andrelative to the transport delay from the output of the A/D 24 to thesync mark detector 66. With an adaptive equalizer, the transport delaywill vary unless the filter's phase response is constrained at theacquisition preamble frequency by, for example, using an orthogonalprojection operation Pv₁v₂ ^(⊥) of the present invention.

Turning now to the implementation details of the orthogonal projectionoperation Pv₁v₂ ^(⊥), the equalizer's frequency response is${C\left( ^{{j2}\quad \pi \quad f} \right)} = {\sum\limits_{k}{C_{k}^{{- j}\quad {k2}\quad \pi \quad {fT}}}}$

where C_(k) are the coefficients of the equalizer's impulse response. Atthe preamble frequency (1/4T), the equalizer's frequency response is${C\left( ^{j\frac{\pi}{2}} \right)} = {\sum\limits_{k}{C_{k}^{{- j}\quad k\frac{\pi}{2}}}}$

where the sampling period has been normalized to T=1. In matrix form,the equalizer's frequency response at the preamble frequency is,${C\left( ^{j\frac{\pi}{2}} \right)} = {{{\underset{\_}{C}}^{T}\begin{bmatrix}\left( ^{j\frac{\pi}{2}} \right)^{0} \\\left( ^{j\frac{\pi}{2}} \right)^{- 1} \\\vdots \\\left( ^{j\frac{\pi}{2}} \right)^{- {({N - 1})}}\end{bmatrix}} = {{{\underset{\_}{C}}^{T}\begin{bmatrix}(j)^{0} \\(j)^{- 1} \\\vdots \\(j)^{- {({N - 1})}}\end{bmatrix}} = {{\underset{\_}{C}}^{T}\begin{bmatrix}1 \\{- j} \\{- 1} \\j \\\vdots\end{bmatrix}}}}$

Those skilled in the art will recognize that shifting the time base willlead to four different, but functionally equivalent, frequency responsesat the preamble frequency (i.e., [1, −j, −1, j, . . . ]C, [−j, 31 1, j,1, . . . ]C, [−1, j, 1, −j, . . . ]C and [j, 1, −j, −1, . . . ]C).Constraining the phase response of the equalizer B103 to an integermultiple of π at the preamble frequency (1/4T) implies that theimaginary component of its frequency response is zero,${{\underset{\_}{C}}^{T}\begin{bmatrix}0 \\{- 1} \\0 \\1 \\\vdots\end{bmatrix}} = {{{\underset{\_}{C}}^{T} \cdot V_{1}} = 0}$

If the imaginary component of the frequency response is constrained tozero, as described above, then constraining the magnitude of theequalizer to g at the preamble frequency (1/4T) implies that the realcomponent of the frequency response equals g,${{\underset{\_}{C}}^{T}\begin{bmatrix}1 \\0 \\{- 1} \\0 \\\vdots\end{bmatrix}} = {{{\underset{\_}{C}}^{T} \cdot V_{2}} = g}$

Therefore, the equalizer's coefficients C_(k) must be constrained tosatisfy the following two conditions:

C ^(T) ·V ₁=0,

and

C ^(T) ·V ₂ =g.

The above constraints are achieved by multiplying the computed gradientX_(k)·e _(k) by an orthogonal projection operation pv₁v₂ ^(⊥) as part ofa modified LMS algorithm C114.

To understand the operation of the orthogonal projection operation,consider an equalizer that comprises only two coefficients: C₀ and C₁ asshown in FIG. 10. The phase constraint condition C ^(T)·V₁=0 impliesthat the filter coefficient vector C ^(T) must be orthogonal to V₁. Whenusing an unmodified LMS algorithm to update the filter coefficients, theorthogonal constraint is not always satisfied as shown in FIG. 10. Thepresent invention, however, constrains the filter coefficients to asubspace <C> which is orthogonal to V₁ by multiplying the gradientvalues X_(k)·e _(k) by a projection operation Pv₁ ^(⊥), where the nullspace of the projection operation Pv₁ ^(⊥) is orthogonal to <C>. Theupdated coefficients correspond to a point on the orthogonal subspace<C> closest to the coefficients derived from the unmodified LMSalgorithm as shown in FIG. 10.

Similar to the phase constraint projection operation Pv₁ ^(⊥), a secondorthogonal projection operation Pv₂ ^(⊥) constrains the filtercoefficients such that the coefficient vector C ^(T) satisfies the abovegain constraint: C ^(T)·V₂=g. The combined orthogonal projectionoperation Pv₁v₂ ^(⊥) eliminates two degrees of freedom in anN-dimensional subspace where N is the number of filter coefficients(i.e., the orthogonal projection operation Pv₁v₂ ^(⊥) has a rank ofN−2).

An orthogonal projection operation for V₁ and V₂ can be computedaccording to

Pv _(x) ^(⊥) =I−Pv _(x) =I−V _(x) 9 V _(x) ^(T) V _(x))⁻¹ V _(x)^(T)  (20)

where Pv₁v₂ ^(⊥)=Pv₁ ^(⊥)·Pv₂ ^(⊥) since V₁ is orthogonal to V₂. Theorthogonal projection operation Pv₁v₂ ^(⊥) computed using the aboveequation for an equalizer comprising ten filter coefficients is a matrix${{Pv}_{1}v_{2}^{\bot}} = \begin{matrix}4 & 0 & 1 & 0 & {- 1} & 0 & 1 & 0 & {- 1} & 0 \\0 & 4 & 0 & 1 & 0 & {- 1} & 0 & 1 & 0 & {- 1} \\1 & 0 & 4 & 0 & 1 & 0 & {- 1} & 0 & 1 & 0 \\0 & 1 & 0 & 4 & 0 & 1 & 0 & {- 1} & 0 & 1 \\{- 1} & 0 & 1 & 0 & 4 & 0 & 1 & 0 & {- 1} & 0 \\0 & {- 1} & 0 & 1 & 0 & 4 & 0 & 1 & 0 & {- 1} \\1 & 0 & {- 1} & 0 & 1 & 0 & 4 & 0 & 1 & 0 \\0 & 1 & 0 & {- 1} & 0 & 1 & 0 & 4 & 0 & 1 \\{- 1} & 0 & 1 & 0 & {- 1} & 0 & 1 & 0 & 4 & 0 \\0 & {- 1} & 0 & 1 & 0 & {- 1} & 0 & 1 & 0 & 4\end{matrix}$

The above matrix pv₁v₂ ^(⊥) is an orthogonal projection matrix scaled by5 (multiplied by 5) so that it contains integer valued elements whichsimplifies multiplying by x_(k)·e _(k) in the LMS update equation,

w _(k+1) =w _(k) −μ·pv ₁ v ₂ ^(⊥)·( x _(k) ·e _(k)).  (21)

The scaling factor is taken into account in the selection of the gainvalue μ. Constraining the gain to g and the phase to kπ at thenormalized frequency of 0.5 simplifies implementing the orthogonalprojection matrix Pv₁v₂ ^(⊥): half of the elements are zero and theother half are either +1, −1, or +4. Thus, multiplying the projectionmatrix Pv₁v₂ ^(⊥) by the gradient values x _(k)·e _(k) requires onlyshift registers and adders.

The ACQ/TRK signal shown in FIG. 8B disables adaptation of the FIRfilter during acquisition, that is, while acquiring the acquisitionpreamble 68 shown in FIG. 2B. Thus, the adaptive equalizer B103 adaptsonly after acquiring the acquisition preamble 68.

Reduced Cost Orthogonal Constraint Matrix

Even though the above orthogonal projection matrix Pv₁v₂ ^(⊥) has asimple structure wherein half of the elements are zero, it may not becost effective to directly implement it due to the significant number ofshift and accumulate operations necessary to compute Pv₁v₂ ^(⊥)·(X_(k)·e_(k)). In order to reduce the cost and complexity, an alternativeembodiment of the present invention decimates the modified LMSadaptation algorithm C114 as illustrated in FIGS. 11A, 11B, 11C and 11D.

A mathematical basis for the circuit of FIG. 11A will be discussedbefore describing the details of operation. Referring again to the aboveequation (20),

Pv_(x) ^(⊥) =I−Pv _(x) =I−V _(x)(V _(x) ^(T) V _(x))⁻¹ V _(x) ^(T)

by combining the above V₁ and V₂ vectors into a N×2 matrix$V = \begin{bmatrix}{+ 1} & 0 \\0 & {- 1} \\{- 1} & 0 \\0 & {+ 1} \\\vdots & \vdots\end{bmatrix}$

(those skilled in the art will recognize that shifting the time baseprovides four alternatives for the V matrix) then the operation (V_(x)^(T)V_(x))⁻¹ of equation (20) reduces to $\begin{bmatrix}\frac{1}{5} & 0 \\0 & \frac{1}{5}\end{bmatrix} = {\frac{1}{5}I}$

Thus, equation (20) reduces to

Pv ^(⊥) =I−1/5·VV ^(T).  (23)

Multiplying both sides of equation (22) by 5 provides

5·Pv ^(⊥)=5·I−VV ^(T).  (23)

Referring again to equation (21),

w _(k+1) =w _(k) −μ·Pv ₁ v ₂ ^(⊥)·( x _(k) ·e _(k))

setting x _(k)·e _(k)=g _(k) reduces equation (21) to

w _(k+1) w _(k) −μ·Pv ^(⊥) ·g _(k) =w _(k)−μ·[5·g _(k) −vv ^(T) ·g_(k)].  (24)

Defining δ=v^(T)·g _(k) $\begin{matrix}{{\begin{bmatrix}{+ 1} & 0 & {- 1} & 0 & \ldots \\0 & {- 1} & 0 & {+ 1} & \ldots\end{bmatrix}\begin{bmatrix}g_{0} \\g_{1} \\g_{2} \\g_{3} \\\vdots\end{bmatrix}} = \begin{bmatrix}\delta_{0} \\\delta_{1}\end{bmatrix}} & (25)\end{matrix}$

that is, δ₀=g₀−g₂+ . . . and δ₁=−g₁+g₃− . . . , then computing vv^(T)·g_(k) $\begin{matrix}{{\begin{bmatrix}{+ 1} & 0 \\0 & {- 1} \\{- 1} & 0 \\0 & {+ 1} \\\vdots & \vdots\end{bmatrix}\begin{bmatrix}\delta_{0} \\\delta_{1}\end{bmatrix}} = \begin{bmatrix}{+ \delta_{0}} \\{- \delta_{1}} \\{- \delta_{0}} \\{+ \delta_{1}} \\\vdots\end{bmatrix}} & (26)\end{matrix}$

and computing 5·g _(k)−vv^(T)·g _(k) provides $\begin{matrix}{{{5 \cdot {\underset{\_}{g}}_{k}} - \begin{bmatrix}{+ \delta_{0}} \\{- \delta_{1}} \\{- \delta_{0}} \\{+ \delta_{1}} \\\vdots\end{bmatrix}} = \begin{bmatrix}{{5g_{0}} - \delta_{0}} \\{{5g_{1}} + \delta_{1}} \\{{5g_{2}} + \delta_{0}} \\{{5g_{3}} - \delta_{1}} \\\vdots\end{bmatrix}} & (27)\end{matrix}$

FIG. 11A implements the above equations (25), (26), (27) and ultimatelyequation (21) in order to update the coefficients of the equalizerfilter C100 according to the modified LMS adaptation algorithm of thepresent invention. To further reduce the implementation cost, thecircuit of FIG. 11A decimates the adaptation algorithm by the number offilter coefficients (10 in the example shown); that is, the adaptationalgorithm operates only on every tenth sample value rather than on everysample value and updates only one filter coefficient per clock period.This is illustrated by expanding equation (24) $\begin{matrix}{\begin{bmatrix}W_{{({k + 1})}0} \\W_{{({k + 2})}1} \\W_{{({k + 3})}2} \\W_{{({k + 4})}3} \\\vdots\end{bmatrix} = {\begin{bmatrix}W_{{({k + 0})}0} \\W_{{({k + 1})}1} \\W_{{({k + 2})}2} \\W_{{({k + 3})}3} \\\vdots\end{bmatrix} - {\mu \cdot \begin{bmatrix}{{5g_{{({k + 0})}0}} - \delta_{{({k + 0})}0}} \\{{5g_{{({k + 1})}1}} + \delta_{{({k + 1})}1}} \\{{5g_{{({k + 2})}2}} + \delta_{{({k + 2})}0}} \\{{5g_{{({k + 3})}3}} - \delta_{{({k + 3})}1}} \\\vdots\end{bmatrix}}}} & (28)\end{matrix}$

where k+i is the clock period and g_((i)j)=X_(i−j)·e_(i). Thus, at eachclock period, the next gradient value g_((i)j) can be computed bymultiplying a sample value latched every tenth clock cycle by the nexterror value e_(i). The new gradient g_((i)j) is then used to update thecorresponding filter coefficient W_((i)j) of equation (28).

Referring now to the circuit shown in FIG. 11A, the sample values X_(k)are input into the discrete time equalizer filter C100 and the equalizedsample values input into the interpolator B122 similar to FIG. 8B. Aserial-to-parallel circuit C140 converts the interpolated sample valuesY_(k+τ) into even and odd subsequences Y_(2k+τ) and Y_((2k−1)+τ)) wherethe notation 2k indicates that two new interpolated sample values areoutput from the serial-to-parallel circuit C140 at every other sampleperiod. A slicer C142 generates the corresponding even and odd estimatedsubsequences ˜Y_(2k+τ) and ˜Y_((2k−1)+τ) which are subtracted from theinterpolated sample values at respective adders (C144 ₁,C144 ₂) to forman even and odd sample error sequences e_(2k+τ) and e_((2k−1)+τ). Anerror value interpolation circuit C146, similar to that of FIG. 8B,generates the even and odd sample error sequences e_(2k) and e_((2k−1))which are synchronized to the A/D sample rate.

As mentioned above, the circuit of FIG. 11A decimates the adaptationalgorithm of the present invention by the number of coefficients in theequalizer filter C100. For the example shown, the equalizer filter C100has 10 filter coefficients; accordingly, a decimate by 10 circuit C148loads a sample value into a delay register C150 every tenth sampleperiod. Thereafter, the output of delay register C150 is represented byX_(2k−2j−1) where: j=1→5 incremented by 2 at every other sample period.The output of the delay register C150 X_(2k−2j−1) is multiplied by thesample errors e_(2k) and e_((2k−1)) at respective multipliers (C152₁,C152 ₂) to form the gradient values g_(2j) and g_(2j−1) used inequation (24).

The gradient values g_(2j) and g_(2j−1) are then shifted into respectiveshift registers (C154 ₁,C154 ₂). To implement equation (27), thegradient values g_(2j) and g_(2j−1) are multiplied by respectivealternating ±1 (C156 ₁,C156 ₂) and accumulated in respectiveaccumulators (C158 ₁,C158 ₂). After accumulating 5 gradient values ineach accumulator (C158 ₁,C158 ₂), the outputs of the accumulators (whichrepresent δ₀ and δ₁ of equation (25)) are latched by respective decimateby 5 circuits (C160 ₁,C160 ₂) and the accumulators (C158 ₁,C158 ₂) arereset. The values δ₀ and δ₁ are then multiplied by respectivealternating ±1 (C162 ₁,C162 ₂) to implement equation (26). The gradientvalues g_(2j) and g_(2j−1) at the outputs of the shift register (C154₁,C154 ₂) are multiplied by 5 (C164 ₁,C164 ₂) and the values δ₀ and δ₁are subtracted therefrom at adders (C166 ₁,C166 ₂) in order to implementequation (27).

To finish the adaptive update algorithm (i.e., to implement equation(28)), the output of adders (C166 ₁,C166 ₂) are scaled by a gain factorμ (C168 ₁,C168 ₂) which is reduced by a factor of 5 to account for thescaled up projection operator. The output of the gain factor μ (C168₁,C168 ₂) is subtracted at adders (C170 ₁,C170 ₂) from the correspondingfilter coefficient (W_(2j−1),W_(2j)) selected by a multiplexor (C172₁,C172 ₂) from a bank of registers (C174 ₁,C174 ₂). The ADAPT_(2j)signal selects the 2j^(th) coefficient from the bank of registers (C174₁,C174 ₂) for updating. After subtracting the update value, the updatedfilter coefficient (C176 ₁,C176 ₂) is restored to the bank of registers(C174 ₁,C174 ₂) and used by the equalizer filter C100 during the nextclock period to equalize the sample values according to its updatedspectrum.

Decimating the update algorithm by the number of filter coefficients, asin FIG. 11A, decreases the implementation complexity but at the cost ofslowing convergence of the equalizer filter C100 toward an optimumsetting. This is because the decimated update algorithm does not use allof the sample values to compute the gradients g_(j). FIGS. 11B and 11Cshow an alternative embodiment of the decimated update algorithm of thepresent invention wherein more of the sample values are used to computethe gradients g_(j), which adds complexity but improves performancebecause the equalizer filter C100 converges faster.

The circuit in FIG. 11B operates similar to the circuit in FIG. 11Adescribed above except for the addition of respective gradient averagingcircuits (C176 ₁,C176 ₂) which compute an averaged gradient g_(2j−1) andg_(2j) over several sample values, $\begin{matrix}{g_{2{kj}} = {\frac{1}{N}{\sum\limits_{n = 0}^{N - 1}{e_{{2k} - n} \cdot X_{{2k} - {2j} - n}}}}} & (29)\end{matrix}$

where N is a predetermined number of sample values out of the number ofequalizer filter taps. In one embodiment, all of the sample values couldbe used (i.e., a number of sample values equal to the number filtertaps), or in an alternative embodiment, a decimated number of samplevalues could be used in order to reduce the complexity and cost.

FIG. 11C shows an embodiment of the gradient averaging circuits (C176₁,C176 ₂) wherein the number of sample values is decimated by 2; thatis, 5 out of the 10 sample values corresponding to the 10 equalizerfilter taps are used to compute the averaged gradients g_(2j−1) andg_(2j).

In operation, a decimate by 2 circuit C178 of FIG. 11B stores everyother sample value in the delay register C150. The output of the delayregister C150 is multiplied (C180 ₁-180 ₅) by the error value e_(2k) anddelayed versions of the error value e_(2k−n), and the results areaccumulated in accumulators (C182 ₁-182 ₅). After accumulating fivegradients, the contents of the accumulators (C182 ₁-182 ₅) aretransferred to registers (C184 ₁-184 ₅), and the accumulators (C182₁-182 ₅) are cleared. Then, at every other sample period, the contentsof registers (C184 ₁-184 ₅) are shifted from left to right (i.e., C184₅=C184 ₄; C184 ₄=C184 ₃; etc.) and the output of register C184 ₅ is theaveraged gradient g_(2j) output by the gradient averaging circuit (C176₁,C176 ₂). The averaged gradients g_(2j) and g_(2j−1) (C186 ₁,C186 ₂)are then used to update the coefficients of the equalizer filter C100using circuitry C188 in the same manner as described with reference toFIG. 11A.

FIG. 11D illustrates yet another embodiment of the present inventionwhich further reduces the cost and complexity, as compared to FIG. 11A,by updating the even and odd filter coefficients sequentially. That is,during the first N periods (where N is the number of filtercoefficients) the circuit of FIG. 11D computes the coefficient updatevalues of equation (28) for the even filter coefficients (W₀, W₂, W₄, .. . ), and then during the next N sample periods it computes the updatevalues for the odd filter coefficients (W₁, W₃, W₅, . . . ) . Adecimation circuit C190 decimates the error value e_(k) by two, andapproximately half the circuitry as that of FIG. 11A is used to computethe update values. The decimate by two circuit C190 is actuallysyncopated; that is, it outputs the error values for k=0, k=2, k=4, k=6,k=8, and then outputs the error values for k=9, k=11, k=13, k=15, k=17(assuming the adaptive filter C100 comprises ten filter taps).

Mathematically, operation of the update circuit in FIG. 11D can bedescribed by, $\begin{bmatrix}W_{{({k + 1})}0} \\W_{{({k + 3})}2} \\W_{{({k + 5})}4} \\W_{{({k + 7})}6} \\W_{{({k + 9})}8} \\W_{{({k + 10})}1} \\W_{{({k + 12})}3} \\W_{{({k + 14})}5} \\W_{{({k + 16})}7} \\W_{{({k + 18})}9}\end{bmatrix} = {\begin{bmatrix}W_{{({k + 0})}0} \\W_{{({k + 2})}2} \\W_{{({k + 4})}4} \\W_{{({k + 6})}6} \\W_{{({k + 8})}8} \\W_{{({k + 9})}1} \\W_{{({k + 11})}3} \\W_{{({k + 13})}5} \\W_{{({k + 15})}7} \\W_{{({k + 17})}9}\end{bmatrix} - {\mu \cdot \begin{bmatrix}{{5g_{{({k + 0})}0}} - \delta_{{({k + 0})}0}} \\{{5g_{{({k + 2})}2}} + \delta_{{({k + 2})}0}} \\{{5g_{{({k + 4})}4}} - \delta_{{({k + 4})}0}} \\{{5g_{{({k + 6})}6}} + \delta_{{({k + 6})}0}} \\{{5g_{{({k + 8})}8}} - \delta_{{({k + 8})}0}} \\{{5g_{{({k + 9})}1}} + \delta_{{({k + 9})}1}} \\{{5g_{{({k + 11})}3}} - \delta_{{({k + 11})}1}} \\{{5g_{{({k + 13})}5}} + \delta_{{({k + 13})}1}} \\{{5g_{{({k + 15})}7}} - \delta_{{({k + 15})}1}} \\{{5g_{{({k + 17})}9}} + \delta_{{({k + 17})}1}}\end{bmatrix}}}$

assuming the adaptive filter C100 comprises 10 filter taps.

Obviously, the embodiment of FIG. 11D will decrease the performance ofthe adaptive filter C100 due to the decrease in convergence speed.However, the gradient averaging circuit of FIG. 11C can be used toimprove the performance of the circuit in FIG. 11D, similar to theembodiment of FIG. 11B. Thus in the embodiments of FIGS. 11A-11D, theperformance versus cost and complexity varies-the preferredconfiguration is selected according to the requirements of the user.

Although the interpolated timing recovery and adaptive equalizer of thepresent invention have been disclosed in relation to a d=0 PR4 readchannel, the principles disclosed herein are equally applicable to othertypes of sampled amplitude read channels including d=1 EPR4 or EEPR4read channels. In a d=1 read channel, for example, the slicer B141 ofFIG. B4A is replaced by a pulse detector as described in the abovereference U.S. Pat. No. 5,359,631.

Furthermore, the particular constraint frequency of 1/4Ts used in thedisclosed embodiment is not intended to be limiting. Other constraintfrequencies could be used without departing from the scope of thepresent invention. For example, a 3T preamble could be used in whichcase the constraint frequency would be 1/6Ts (if constraining to thepreamble frequency).

Still further, those skilled in the art will appreciate the many obviousmodifications that are possible to the adaptive equations disclosedherein. For example, a shift in the time base would change the FIRfilter's magnitude and phase response at the constraint frequency whichwould result in different V₁ and V₂ matrices. Also, the modified LMSalgorithm,

W _(k+1) =W _(k) −μ·Pv ₁ v ₂ ^(⊥)·(X_(k) ·e _(k))

could be implemented after rearranging terms,

W _(k+1) =W _(k) −μ·e _(k)·(Pv ₁ v ₂ ^(⊥) ·X _(k))

or

W _(k) +1=W _(k) −μ·X _(k)·(Pv ₁ v ₂ ^(⊥) ·e _(k)).

These, and like modifications, are within the scope of the presentinvention.

The objects of the invention have been fully realized through theembodiments disclosed herein. Those skilled in the art will appreciatethat the various aspects of the invention can be achieved throughdifferent embodiments without departing from the essential function. Theparticular embodiments disclosed are illustrative and not meant to limitthe scope of the invention as appropriately construed by the followingclaims.

TABLE 1 Channel Transfer Function Dipulse Response PR4 (1 − D) (1 + D) 0, 1, 0, −1, 0, 0, 0, . . . EPR4 (1 − D) (1 + D)² 0, 1, 1, −1, −1, 0, 0,. . . EEPR4 (1 − D) (1 + D)³ 0, 1, 2, 0, −2, −1, 0, . . .

TABLE B2 τ · 32/Ts C(−2) C(−1) C(0) C(1) C(2) C(3) 0 0.0000 −0.00001.0000 0.0000 −0.0000 0.0000 1 0.0090 −0.0231 0.9965 0.0337 −0.01200.0068 2 0.0176 −0.0445 0.9901 0.0690 −0.0241 0.0135 3 0.0258 −0.06410.9808 0.1058 −0.0364 0.0202 4 0.0335 −0.0819 0.9686 0.1438 −0.04870.0268 5 0.0407 −0.0979 0.9536 0.1829 −0.0608 0.0331 6 0.0473 −0.11200.9359 0.2230 −0.0728 0.0393 7 0.0533 −0.1243 0.9155 0.2638 −0.08440.0451 8 0.0587 −0.1348 0.8926 0.3052 −0.0957 0.0506 9 0.0634 −0.14340.8674 0.3471 −0.1063 0.0556 10 0.0674 −0.1503 0.8398 0.3891 −0.11640.0603 11 0.0707 −0.1555 0.8101 0.4311 −0.1257 0.0644 12 0.0732 −0.15890.7784 0.4730 −0.1341 0.0680 13 0.0751 −0.1608 0.7448 0.5145 −0.14150.0710 14 0.0761 −0.1611 0.7096 0.5554 −0.1480 0.0734 15 0.0765 −0.15980.6728 0.5956 −0.1532 0.0751 16 0.0761 −0.1572 0.6348 0.6348 −0.15720.0761 17 0.0751 −0.1532 0.5956 0.6728 −0.1598 0.0765 18 0.0734 −0.14800.5554 0.7096 −0.1611 0.0761 19 0.0710 −0.1415 0.5145 0.7448 −0.16080.0751 20 0.0680 −0.1341 0.4730 0.7784 −0.1589 0.0732 21 0.0644 −0.12570.4311 0.8101 −0.1555 0.0707 22 0.0603 −0.1164 0.3891 0.8398 −0.15030.0674 23 0.0556 −0.1063 0.3471 0.8674 −0.1434 0.0634 24 0.0506 −0.09570.3052 0.8926 −0.1348 0.0587 25 0.0451 −0.0844 0.2638 0.9155 −0.12430.0533 26 0.0393 −0.0728 0.2230 0.9359 −0.1120 0.0473 27 0.0331 −0.06080.1829 0.9536 −0.0979 0.0407 28 0.0268 −0.0487 0.1438 0.9686 −0.08190.0335 29 0.0202 −0.0364 0.1058 0.9808 −0.0641 0.0258 30 0.0135 −0.02410.0690 0.9901 −0.0445 0.0176 31 0.0068 −0.0120 0.0337 0.9965 −0.02310.0090

We claim:
 1. A sampled amplitude read channel for reading digital data from a sequence of discrete time sample values generated by sampling an analog read signal from a read head positioned over a magnetic medium, comprising: (a) a sampling device for sampling the analog read signal to generate the discrete time sample values; (b) an adaptive equalizer, responsive to the discrete time sample values, for generating equalized sample values according to a target response; (c) an interpolated timing recovery circuit for generating interpolated sample values; and (d) a discrete time sequence detector for detecting the digital data from the interpolated sample values, wherein: the adaptive equalizer comprises an FIR filter comprising a plurality of filter coefficients; the adaptive equalizer is responsive to an error value e_(k) computed as a function of an output of the FIR filter and an estimated ideal value; the adaptive equalizer comprises an interpolation circuit, responsive to the interpolated sample values, for generating the error value e_(k) synchronous with the discrete time sample values.
 2. The sampled amplitude read channel as recited in claim 1, wherein the error value e_(k) is computed relative to a difference between an output of the interpolated timing recovery circuit and a sample value estimator responsive to the interpolated sample values.
 3. The sampled amplitude read channel as recited in claim 1, wherein the error value e_(k) is computed relative to a difference between an output of the FIR filter and an output of the interpolation circuit.
 4. The sampled amplitude read channel as recited in claim 1, wherein: (a) the least mean square algorithm is: W _(k+1) =W _(k) −μ·X _(k) ·e _(k); (b) W _(k) are the filter coefficients of the FIR filter; (c) μ is a predetermined gain; and (d) X_(k) is a discrete time sample value.
 5. The sampled amplitude read channel as recited in claim 1, wherein the adaptive equalizer further comprises a constraint circuit for constraining a frequency response of the adaptive equalizer at a predetermined constraint frequency.
 6. The sampled amplitude read channel as recited in claim 5, wherein the constraint circuit comprises an orthogonal projection operation for constraining the filter coefficients relative to the predetermined constraint frequency.
 7. The sampled amplitude read channel as recited in claim 6, wherein: (a) the constraint circuit operates according to a modified least mean square algorithm, W _(k+1) =W _(k) −μ·Pv ₁ v ₂ ^(⊥)·(X _(k) ·e _(k)) (b) W _(k) are the filter coefficients; (c) μ is a predetermined gain; (d) Pv₁v₂ ^(⊥) is the orthogonal projection matrix; and (e) X_(k) is a discrete time sample value.
 8. The sampled amplitude read channel as recited in claim 1, wherein the interpolated timing recovery circuit further generates a data clock for clocking the discrete time detector.
 9. The sampled amplitude read channel as recited in claim 1, wherein: (a) the analog read signal comprises pulses modulated by the digital data at a predetermined baud rate; and (b) the sampling device samples the analog read signal at a rate above the baud rate.
 10. The sampled amplitude read channel as recited in claim 1, wherein the interpolated timing recovery circuit comprises an interpolator responsive to an interpolation interval τ proportional to a time difference between a channel sample value and a desired interpolated sample value.
 11. The sampled amplitude read channel as recited in claim 10, wherein the interpolator comprises an actual interpolation filter having an actual impulse response h(k) which approximates an ideal impulse response of an ideal interpolation filter: sin c(π·(k−τ/Ts)); where: k is a time index; and Ts is a sample period of the sampling clock.
 12. The sampled amplitude read channel as recited in claim 10, wherein the interpolator comprises an actual interpolation filter having an actual impulse response h(k) generated by minimizing a mean squared error between a frequency response of the actual interpolation filter and an ideal frequency response corresponding to an ideal interpolation filter.
 13. The sampled amplitude read channel as recited in claim 10, wherein: (a) the interpolator comprises an actual interpolation filter; and (b) a plurality of coefficients C_(τ,k) of the actual interpolation filter are computed in real time as a function of τ.
 14. The sampled amplitude read channel as recited in claim 1, wherein the analog read signal comprises pulses modulated by the digital data at a predetermined baud rate, the interpolated timing recovery circuit further comprising: (a) a frequency offset generator for generating a frequency offset Δf proportional to a frequency difference between a sampling clock and the baud rate; and (b) a mod-Ts accumulator for accumulating, modulo-Ts, the frequency offset Δf to generate an interpolation interval τ where Ts is a predetermined sample period of the sampling clock.
 15. The sampled amplitude read channel as recited in claim 14, wherein the frequency offset generator comprises: (a) a phase error detector for detecting a phase error Δθ between an interpolated sample value and an estimated sample value; and (b) a loop filter for filtering the phase error Δθ to generate the frequency offset Δf.
 16. A method for reading digital data from a sequence of discrete time sample values generated by sampling an analog read signal from a read head positioned over a magnetic medium, wherein the analog read signal comprises pulses modulated by the digital data at a predetermined baud rate, the method comprising the steps of: (a) asynchronously sampling the analog read signal to generate asynchronous sample values; (b) adaptively equalizing the asynchronous sample values to generate equalized sample values according to a target response, comprising the steps of: (i) computing an error value as a function of a baud rate synchronous sample value and an estimated ideal sample value; and (ii) synchronizing the error value to the asynchronous sample values; and (c) interpolating the equalized sample values to generate the baud rate synchronous sample values; and (d) detecting the digital data from the baud rate synchronous sample values.
 17. The method for reading digital data as recited in claim 16, wherein the step of interpolating the equalized sample values comprises the step of generating a data clock for clocking the detection of the digital data from the baud rate synchronous sample values. 